What you need
-------------

This port of the JIT compiler to Windows requires GCC.

- MinGW Runtime 0.4
- GCC 2.95.2, MSVCRT version
- GNU rm.exe
- w32api 0.4
- DirectX 6.1 for MinGW
- binutils 2.10.91		(14.Jan.2001)
- ld 2.10.91			(26.Jan.2001)
- libbfd 2.10.91		(21.Jan.2001)

Patches to w32api
-----------------

In <winuser.h>, after the first series of #define's, insert the following lines

#define LLKHF_EXTENDED	(KF_EXTENDED >> 8)
#define LLKHF_INJECTED	0x00000010
#define LLKHF_ALTDOWN	(KF_ALTDOWN >> 8)
#define LLKHF_UP	(KF_UP >> 8)
#define LLMHF_INJECTED	0x00000001
typedef struct tagKBDLLHOOKSTRUCT {
	DWORD	vkCode;
	DWORD	scanCode;
	DWORD	flags;
	DWORD	time;
	DWORD	dwExtraInfo;
} KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;

Building Basilisk II Windows port with the JIT Compiler
-------------------------------------------------------

- Get the latest sources
- Copy <afxres.h>, <winres.h> and <snmp.h> to the src\Windows\wincludes directory
- In the src\Windows directory, type:
	make jit	for Basilisk II with the JIT Compiler
	make		for Basilisk II without the JIT Compiler (and unoptimized)

Caveats
-------

- cpuopti doesn't work. Read: it doesn't do anything interesting.
  Anyway, it becomes useless with the JIT Compiler.

- When compiling the non-JIT version of Basilisk II for Windows, the assembly
  optimized FPU core (fpu_x86.cpp) won't work. This is due to some weird things
  that make Basilisk II to crash with an "unhandled exception" message when
  executing fpu_init().

- GCC options: don't use -fomit-frame-pointer in CFLAGS! It would generate
  incorrect code for video_windows.cpp. CFLAGS_CE is intended for the CPU
  emulation core only (uae_cpu\ directory).

Gwenole Beauchesne
gb@dial.oleane.com